使用 Debian 10 搭建旁路代理网关/透明代理

您所在的位置:网站首页 openwrt 透明网关 使用 Debian 10 搭建旁路代理网关/透明代理

使用 Debian 10 搭建旁路代理网关/透明代理

2024-07-12 13:39:07| 来源: 网络整理| 查看: 265

使用 Debian 10 搭建旁路代理网关

上篇介绍过我曾经用 Proxmox VE 搭建过 OpenWRT 旁路由,但是由于某些众所周知的原因,在这个 OpenWRT 系统上跑 Shadowsocks 服务的 3 台 Bandwagon 服务器的 IP 同时被x了,这也太巧了吧!从此对 OpenWRT 搭建旁路由有心理阴影了,因为我没有理由不怀疑来路不明的 OpenWRT 固件或者 shadowsocks-libev-ss-server 插件有问题,并不是 OpenWRT 不靠谱,都怪我自己不会编译。

不用 OpenWRT 搭建旁路由,难道就没办法方便的上网了吗?当然不是,我们可以用 Debian 10 Linux 系统搭建一个旁路由,准确的说,这个叫透明网关或者透明代理。其实我很早就看到别人的教程了,迟迟没有动手的原因是 macOS 下我用 ClashX ,Windows 下用 v2rayN ,iOS 下用 Quantamult X 就可以方便的上网。

唯独在 Android 下,我的网络环境 Shadowsocks 几乎不可用了,被干扰的很厉害,又苦于找不到好用的 v2ray 客户端 。前几天看到有人分享 Clash for Android 横空出世了,原文提到的下载方式包括 Telegram 群组和 Google Play ,Telegram 我不用,又访问不到 Google Play 这才打算折腾一个透明代理。现在才知道,这个项目原来叫 ClashA ,早就可以方便的下载所有开发版。

搭建一个基于 Debian 10 的透明网关、透明代理非常简单:安装 Debian 10 ,安装 Clash ,配置 Clash ,使用 iptables 转发流量。

安装 Debian 10

前几天用 unRAID 搭建了个简单的家庭服务器,unRAID 支持虚拟机,支持 CPU 和网卡直通,可以让虚拟机获得更好的性能,安装 Debian 10 的过程我这里就不说了。

给 Debian 10 设置静态 IP 地址

因为我们用 Debian 10 搭建网关设备,所以不能用 DHCP 分配 IP 地址,最好设置一个静态 IP

sudo nano /etc/network/interfaces

接下来参考我的配置,为 enp1so 这个网卡设置一个静态 IP 地址:

# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enp1s0 iface enp1s0 inet static address 192.168.2.10 netmask 255.255.255.0 gateway 192.168.2.1 dns-nameservers 192.168.2.1 223.5.5.5 223.6.6.6 # This is an autoconfigured IPv6 interface iface enp1s0 inet6 auto

接着执行 sudo shutdown -r now 重启一下系统就可以了。

安装 Clash

Clash 是一个开源的,类似 Surge 的代理软件,支持本地 HTTP/HTTPS/SOCKS 代理,GeoIP 分流,自定义代理规则等等。

cd ~ wget https://github.com/Dreamacro/clash/releases/download/v0.17.1/clash-linux-amd64-v0.17.1.gz #下载最新版本 gzip -d clash-linux-amd64-v0.17.1.gz #解压 sudo mv clash-linux-amd64-v0.17.1 /usr/local/bin/clash #移动到 /usr/local/bin 目录,并且重命名为 Clash sudo chmod +x /usr/local/bin/clash #添加可执行权限

执行 clash -v 命令看是否安装成功

pengjiayou@debian:~$ clash -v Clash v0.17.1 linux amd64 Wed Jan 1 10:31:59 UTC 2020

返回以上内容说明安装成功。接下来我们编写一个 Systemd 服务脚本,在 /lib/systemd/system/ 目录下创建 [email protected] 文件:

sudo nano /lib/systemd/system/[email protected]

写入以下内容(别修改)然后保存:

[Unit] Description=A rule based proxy in Go for %i. After=network.target [Service] Type=simple User=%i Restart=on-abort ExecStart=/usr/local/bin/clash [Install] WantedBy=multi-user.target

重新加载 systemd 模块

sudo systemctl daemon-reload

设置 Clash 开机自启动

sudo systemctl enable clash@user

user 是你当前 Debian 系统的用户名,比如 sudo systemctl enable clash@pengjiayou

简单配置 Clash (添加 Clash 配置文件)

Clash 的默认配置文件所在的目录是 $HOME/.config/clash ,配置文件的名称是 config.yml

mkdir ~/.config/ #在 $HOME 下创建 .config 目录 cd ~/.config/ #进入 .config 目录 mkdir clash #在 .config 目录创建 clash 目录 cd clash #进入 clash 目录 touch config.yaml #创建 config.yaml 文件 wget https://github.com/haishanh/yacd/archive/gh-pages.zip #yacd 是一个 Clash 的 web 前端 unzip gh-pages.zip #解压 gh-pages.zip mv yacd-gh-pages/ dashboard/ #重命名为 dashboard 目录

编辑 config.yaml 文件

nano ~/.config/clash/config.yaml

在 config.yaml 文件中加入如下内容:

port: 7890 socks-port: 7891 redir-port: 7892 allow-lan: true mode: Rule log-level: info external-controller: 0.0.0.0:9090 secret: "" external-ui: dashboard #此处内容请安装一个gui版本的clash然后在里面配置好代理然后抄过来 Proxy: Proxy Group: # Rule: - IP-CIDR,127.0.0.0/8,DIRECT - IP-CIDR,192.168.0.0/16,DIRECT - FINAL,Proxy

这是 Clash 配置的简化版本,你可以参考这个文件的分流规则。接下来执行:

sudo systemctl start clash@user

如上所述,把 user 换成你当前 Debian 系统的用户名来启动 Clash

Clash 的 YACD web 面板

现在就有一个可以使用的局域网 http 或者 socks5 代理服务器了,甚至可以在浏览器里面访问 http://serverip:9090/ui/ 来调试 Clash!如果是公网的话我推荐 secret 处加上密码以保证安全性。

为 Samsung S10e One UI 2 的 WIFI SSID 设置一个 http 代理

为 Samsung S10e One UI 2 的 WIFI SSID 设置一个 http 代理就可以愉快的上网了。

到这一步其实大部分需求都能满足了:在电脑上,不管是 macOS 10.15 或者 Windows 10 你可以设置 http 或者 socks5 系统代理;或者在浏览器插件 SwitchyOmega 上,或者 Dropbox 等软件设置代理服务器就可以上网了。

如果你要为你的 wifi 路由器设置一个透明网关或者叫代理,就像别人的单网口旁路由教程提到的那样,请继续观看本文其它内容。

高级配置 Clash (开启 redir-port 也就是透明代理端口)

1. 做透明代理,必须启用redir-port,也就是clash透明代理的端口。

2.做网关设备,你就必须得让其他局域网的机器能够连接到clash,所以allow-lan必须打开。

3.必须打开clash的DNS功能,并且使用redir-host模式,最重要的是你还需要在fallback:后面加上一个支持DoT的DNS。比如我这边是使用的dns.rubyfish.cn:853,如果你用普通的DNS无非解决域名被污染的问题。

修改 Clash 配置文件如下:

dns: enable: true listen: 0.0.0.0:53 enhanced-mode: redir-host nameserver: - 'tls://dns.rubyfish.cn:853' fallback: - 'tls://1.1.1.1:853' - 'tcp://1.1.1.1:53' - 'tcp://208.67.222.222:443' - 'tls://dns.google'

这里还是 Clash 配置的简化版本,你可以参考这个文件的分流规则。

为 Debian 10 系统开启 IP 转发

要让 Debian 10 能够有一个基本的路由功能很简单,开一下 IP 转发就行:

sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p sudo echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf && sysctl -p

验证一下,回显是1说明转发开启成功:

cat /proc/sys/net/ipv4/ip_forward 配置 iptables 转发

配置文件弄好了之后,现在我们需要把机器所有的流量都转发到clash的透明代理端口上面,当然192.168.0.0这个网段的流量我们不做转发:

iptables -t nat -N clash iptables -t nat -A clash -d 192.168.0.0/16 -j RETURN iptables -t nat -A clash -p tcp -j RETURN -m mark --mark 0xff iptables -t nat -A clash -p tcp -j REDIRECT --to-ports 7892 iptables -t nat -A PREROUTING -p tcp -j clash

永久保存iptables规则:

sudo apt install iptables-persistent netfilter-persistent netfilter-persistent save netfilter-persistent start iptables-save > /etc/iptables/rules.v4 透明代理至此终于搭建好了

接下来就可以把旁路网关地址以及 dns 设置在需要的路由器,或者电脑上愉快的上网了。其实我没走到这一步,我到刚刚搭建好了一个局域网的 http / socks5 代理那一步就结束了,因为已经满足我的需求了,如果有问题,请参考如下资料:

使用Debian9自己打造一个旁路由在 Ubuntu18.04 上使用 clash 部署旁路代理网关(透明代理)SystemdClash:Clash 以 systemd 服务的方式开机自启


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭